/*
 * @(#)OrderService.java 2021年3月8日
 *
 * Copyright (c) 2010 by rayootech.com. All rights reserved.
 */
package com.nuctech.order.service;

import com.nuctech.common.entity.Order;

/**
 * 订单业务接口
 *
 * @author lilu
 * @date 2021年3月8日
 * @since 1.0.0
 */
public interface OrderService {

	/**
	 * 获取订单信息
	 *
	 * @author lilu
	 * @date 2021/3/9 5:25 下午
	 * @since 1.0.0
	 *
	 * @param oid
	 * @return com.nuctech.common.entity.Order
	 * @throws
	 */
	Order get(Integer oid);
	/**
	 * 创建订单
	 *
	 * @author lilu
	 * @date 2021年3月8日 下午4:02:26
	 * @since 1.0.0
	 *
	 * @param order
	 */
	void createOrder(Order order);
	/**
	 * 创建订单【事务】
	 *
	 * @author lilu
	 * @date 2021年3月17日 下午2:29:42
	 * @since 1.0.0
	 *
	 * @param order
	 * @param txId
	 */
	void createOrderTx(Order order, String txId);
	/**
	 * 创建订单【分布式事务】
	 *
	 * @author lilu
	 * @date 2021/3/28 12:41 下午
	 * @since 1.0.0
	 *
	 * @param pid
	 * @return com.nuctech.common.entity.Order
	 * @throws
	 */
	Order createOrderDT(Integer pid);
	/**
	 * 定义Sentinel资源
	 *
	 * @author lilu
	 * @date 2021/3/9 8:27 下午
	 * @since 1.0.0
	 *
	 * @return java.lang.String
	 * @throws
	 */
	String message(String name);
	/**
	 * 发送半事务消息
	 *
	 * @author lilu
	 * @date 2021年3月15日 下午5:06:06
	 * @since 1.0.0
	 *
	 */
	void createOrderBefore(Order order);

}
